//
//  YYLOriginalViewModel.swift
//  XinlangWeibo
//
//  Created by yangyinglei on 2017/3/31.
//  Copyright © 2017年 yangyinglei. All rights reserved.
//

import UIKit

class YYLOriginalViewModel: NSObject {

    var homeModel:YYLHomeModel? {
        didSet{
            //获取会员等级
            let mbrank = homeModel?.user?.mbrank ?? 0
            handlemBrankImage(mbrank: mbrank)
            //获取认证类型
            let verified_type = homeModel?.user?.verified_type ?? 0
            handlemVerified_typeImage(verified_type: verified_type)
            //获取来源的字符
            handleSourceString(source: homeModel?.source ?? "")

        }

    }
    

    //会员等级  1-6
    var mbrankImage: UIImage?
    //认证类型
    var verified_typeImage: UIImage?
    
    //获取会员等级图片
    fileprivate func handlemBrankImage(mbrank: Int) {
        if mbrank > 0 && mbrank < 7 {
            mbrankImage = UIImage(named: "common_icon_membership_level\(mbrank)")
        }
    }
    //获取认证类型的图片 -1：没有认证，1，认证用户，2,3,5: 企业认证，220: 达人
    fileprivate func handlemVerified_typeImage(verified_type: Int) {
        switch verified_type {
        case 1,0:
            verified_typeImage = UIImage(named: "avatar_vip")
        case 2,3,5:
            verified_typeImage = UIImage(named: "avatar_enterprise_vip")
        case 220:
            verified_typeImage = UIImage(named: "avatar_grassroot")
        default:
            verified_typeImage = nil
        }
    
    }
    
    //信息来源
    var sourceContent: String?
    
    //信息来源的方法
    fileprivate func handleSourceString(source:String) {
        //<a href="http://app.weibo.com/t/feed/5iusLt" rel="nofollow">语录达人</a>
        if let startRange = source.range(of: "\">"), let endRange = source.range(of: "</") {
            //获取字符串要截取的开始位置
            let startIndex = startRange.upperBound
            //获取字符串要截取的结束位置
            let endIndex = endRange.lowerBound
        
            sourceContent = "来自：" + source.substring(with: startIndex..<endIndex)
        }
    }
    
    //微博更新时间   只读计算属性 每次获取时间都要跟当前时间对比
    var timeContent: String? {
    //判断时间是否为空
        guard let createAt = homeModel?.created_at else {
        
            return nil
        }
    //代码到这里表示时间不为空
        /*先判断是不是今年
         再判断是不是今天
         判断是不是一分钟内
         判读是不是一小时内
         判断是不是多少小时内
         
         判断是不是昨天  
         
         不是今天昨天就写日期
         
         
         不是今年就写 年月日
    */
        //是不是今年
            let dt = DateFormatter()
        if isThisYear(creatAt: createAt) {
            //获取今天的日历
            let calendar = Calendar.current
            //是否是今天
            if calendar.isDateInToday(createAt) {
                //是今天
                //获取发微博时间和当前的时间差 
                let timeinterval = abs(createAt.timeIntervalSinceNow)
                if timeinterval < 60 {
                    //1分钟之内
//                    print(createAt.timeIntervalSinceNow)  是个负数
                    return "刚刚"
                } else if timeinterval < 3600 {
                    //1小时内
                    let result = Int(timeinterval / 60)
                    return "\(result)分钟前"
                } else {
                    //1天内
                    let result = Int(timeinterval / 3600)
                    return "\(result)小时前"

                }
                
            } else if calendar.isDateInYesterday(createAt) {  //是昨天
            dt.dateFormat = "昨天 HH:mm"
            
            } else {   //是今年
            dt.dateFormat = "MM-dd HH:mm"
            
            }

        } else {
        //不是今年
        dt.dateFormat = "yyyy-MM-dd HH:mm"
        }

    return dt.string(from: createAt)
    }
    //  判断是不是今年
    fileprivate func isThisYear(creatAt: Date) -> Bool {
        let dt = DateFormatter()
        //  获取年份
        dt.dateFormat = "yyyy"
        //  获取微博发送时间的年份   把当前的日期格式化成字符串
        let creatAtYear = dt.string(from: creatAt)
        //  获取微博发送时间的年份
        let currentYear = dt.string(from: Date())
        //  判断是不是同一年
        return currentYear == creatAtYear
    }
    
   
}
